package com.ningxia.water.service;

import com.ningxia.water.entity.TsMonthData;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ningxia.water.vo.out.MonthConsumedVo;
import com.ningxia.water.vo.out.MonthReportVo;
import com.ningxia.water.vo.out.OtherReportVo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author hz
 * @since 2021-03-15
 */
public interface ITsMonthDataService extends IService<TsMonthData> {

    /**
     * 根据机井id获取一年内每个月的用水量
     * @param wellId
     * @param year
     * @return
     */
    List<MonthConsumedVo> getMonthConsumedByWellId(Integer wellId, String year);

    /**
     * 获取月报表统计
     * @return
     */
    List<MonthReportVo> getAllInfos();

    /**
     * 查询具体日期具体乡镇或工业园区下的用户综合统计数据
     * 获取指定乡镇的用户的许可用水量和计划用水量
     * 获取指定乡镇或工业园区下用户的累计用水量、工业用水量、农业用水量、生产用水量、生活用水量
     * @param month 月份
     * @param zoneType 地址类型
     * @param zoneId 地址id
     * @return
     */
    List<MonthReportVo> getApplicantsInfos(String month, Integer zoneType, Integer zoneId);

    /**
     * 具体日期某区县下所有乡镇的综合统计数据  或
     * 具体日期所有工业园区的综合统计数据
     * @param month
     * @param zoneType
     * @param IdList
     * @return
     */
    List<OtherReportVo> getTownOrAreaInfos(String month, int zoneType, List<Integer> IdList);

    /**
     * 具体日期某市下所有区县的综合统计数据
     * @param month
     * @param districtIdList
     * @return
     */
    List<OtherReportVo> getDistrictInfos(String month, List<Integer> districtIdList);

    /**
     * 所有市的综合统计数据
     * @param month
     * @param cityList
     * @return
     */
    List<OtherReportVo> getCityInfos(String month, List<Integer> cityList);
}
